﻿package com.rongji.dfish.ui.annotation.validation;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;
/**
 * 非空校验
 * <p>包含属性message groups strict pattern</p>
 * @author DFish Team
 * @since 2.4
 */
@Target(value = { METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(value = RUNTIME)
@Documented
public @interface Pattern {
	/**
	 * 不允许出现跳出字符
	 */
	public static final String PATTERN_NO_ESCAPE="..";
	/**
	 * 校验失败后的消息，如果为空则使用默认提示
	 * 
	 * @return String
	 */
	public String message() default "";

	/**
	 * 设置这个校验对那个校验策略生效，默认仅在default策略中
	 * 
	 * @return String
	 */
	public String[] groups() default { "default" };

	/**
	 * 严格校验，不仅在页面FormPanel中产生JS校验，在服务器接收到请求后也会进行校验，校验不通过则抛出异常
	 * 
	 * @return boolean
	 */
	public boolean strict() default false;
	/**
	 * 符合的正则表达式
	 * @return String
	 */
	public String pattern();
}
